package com.quanyan.user.model.db;

import com.quanyan.common.utils.Limit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TbUserExtExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    protected int limitStart = 0;

    protected int limitEnd = 0;

    protected Limit limit;

    public TbUserExtExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimitStart(int limitStart) {
        this.limitStart=limitStart;
    }

    public int getLimitStart() {
        return limitStart;
    }

    public void setLimitEnd(int limitEnd) {
        this.limitEnd=limitEnd;
    }

    public int getLimitEnd() {
        return limitEnd;
    }

    public void setLimit(Limit limit) {
        this.limit=limit;
    }

    public Limit getLimit() {
        return limit;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUidIsNull() {
            addCriterion("uid is null");
            return (Criteria) this;
        }

        public Criteria andUidIsNotNull() {
            addCriterion("uid is not null");
            return (Criteria) this;
        }

        public Criteria andUidEqualTo(Integer value) {
            addCriterion("uid =", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidNotEqualTo(Integer value) {
            addCriterion("uid <>", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidGreaterThan(Integer value) {
            addCriterion("uid >", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidGreaterThanOrEqualTo(Integer value) {
            addCriterion("uid >=", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidLessThan(Integer value) {
            addCriterion("uid <", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidLessThanOrEqualTo(Integer value) {
            addCriterion("uid <=", value, "uid");
            return (Criteria) this;
        }

        public Criteria andUidIn(List<Integer> values) {
            addCriterion("uid in", values, "uid");
            return (Criteria) this;
        }

        public Criteria andUidNotIn(List<Integer> values) {
            addCriterion("uid not in", values, "uid");
            return (Criteria) this;
        }

        public Criteria andUidBetween(Integer value1, Integer value2) {
            addCriterion("uid between", value1, value2, "uid");
            return (Criteria) this;
        }

        public Criteria andUidNotBetween(Integer value1, Integer value2) {
            addCriterion("uid not between", value1, value2, "uid");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusIsNull() {
            addCriterion("name_verify_status is null");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusIsNotNull() {
            addCriterion("name_verify_status is not null");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusEqualTo(Byte value) {
            addCriterion("name_verify_status =", value, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusNotEqualTo(Byte value) {
            addCriterion("name_verify_status <>", value, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusGreaterThan(Byte value) {
            addCriterion("name_verify_status >", value, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("name_verify_status >=", value, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusLessThan(Byte value) {
            addCriterion("name_verify_status <", value, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusLessThanOrEqualTo(Byte value) {
            addCriterion("name_verify_status <=", value, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusIn(List<Byte> values) {
            addCriterion("name_verify_status in", values, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusNotIn(List<Byte> values) {
            addCriterion("name_verify_status not in", values, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusBetween(Byte value1, Byte value2) {
            addCriterion("name_verify_status between", value1, value2, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andNameVerifyStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("name_verify_status not between", value1, value2, "nameVerifyStatus");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconIsNull() {
            addCriterion("is_default_icon is null");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconIsNotNull() {
            addCriterion("is_default_icon is not null");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconEqualTo(Byte value) {
            addCriterion("is_default_icon =", value, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconNotEqualTo(Byte value) {
            addCriterion("is_default_icon <>", value, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconGreaterThan(Byte value) {
            addCriterion("is_default_icon >", value, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_default_icon >=", value, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconLessThan(Byte value) {
            addCriterion("is_default_icon <", value, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconLessThanOrEqualTo(Byte value) {
            addCriterion("is_default_icon <=", value, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconIn(List<Byte> values) {
            addCriterion("is_default_icon in", values, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconNotIn(List<Byte> values) {
            addCriterion("is_default_icon not in", values, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconBetween(Byte value1, Byte value2) {
            addCriterion("is_default_icon between", value1, value2, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIconNotBetween(Byte value1, Byte value2) {
            addCriterion("is_default_icon not between", value1, value2, "isDefaultIcon");
            return (Criteria) this;
        }

        public Criteria andBgUrlIsNull() {
            addCriterion("bg_url is null");
            return (Criteria) this;
        }

        public Criteria andBgUrlIsNotNull() {
            addCriterion("bg_url is not null");
            return (Criteria) this;
        }

        public Criteria andBgUrlEqualTo(String value) {
            addCriterion("bg_url =", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlNotEqualTo(String value) {
            addCriterion("bg_url <>", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlGreaterThan(String value) {
            addCriterion("bg_url >", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlGreaterThanOrEqualTo(String value) {
            addCriterion("bg_url >=", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlLessThan(String value) {
            addCriterion("bg_url <", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlLessThanOrEqualTo(String value) {
            addCriterion("bg_url <=", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlLike(String value) {
            addCriterion("bg_url like", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlNotLike(String value) {
            addCriterion("bg_url not like", value, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlIn(List<String> values) {
            addCriterion("bg_url in", values, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlNotIn(List<String> values) {
            addCriterion("bg_url not in", values, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlBetween(String value1, String value2) {
            addCriterion("bg_url between", value1, value2, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andBgUrlNotBetween(String value1, String value2) {
            addCriterion("bg_url not between", value1, value2, "bgUrl");
            return (Criteria) this;
        }

        public Criteria andZodiacIsNull() {
            addCriterion("zodiac is null");
            return (Criteria) this;
        }

        public Criteria andZodiacIsNotNull() {
            addCriterion("zodiac is not null");
            return (Criteria) this;
        }

        public Criteria andZodiacEqualTo(String value) {
            addCriterion("zodiac =", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacNotEqualTo(String value) {
            addCriterion("zodiac <>", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacGreaterThan(String value) {
            addCriterion("zodiac >", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacGreaterThanOrEqualTo(String value) {
            addCriterion("zodiac >=", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacLessThan(String value) {
            addCriterion("zodiac <", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacLessThanOrEqualTo(String value) {
            addCriterion("zodiac <=", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacLike(String value) {
            addCriterion("zodiac like", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacNotLike(String value) {
            addCriterion("zodiac not like", value, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacIn(List<String> values) {
            addCriterion("zodiac in", values, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacNotIn(List<String> values) {
            addCriterion("zodiac not in", values, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacBetween(String value1, String value2) {
            addCriterion("zodiac between", value1, value2, "zodiac");
            return (Criteria) this;
        }

        public Criteria andZodiacNotBetween(String value1, String value2) {
            addCriterion("zodiac not between", value1, value2, "zodiac");
            return (Criteria) this;
        }

        public Criteria andIndustryIsNull() {
            addCriterion("industry is null");
            return (Criteria) this;
        }

        public Criteria andIndustryIsNotNull() {
            addCriterion("industry is not null");
            return (Criteria) this;
        }

        public Criteria andIndustryEqualTo(String value) {
            addCriterion("industry =", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryNotEqualTo(String value) {
            addCriterion("industry <>", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryGreaterThan(String value) {
            addCriterion("industry >", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryGreaterThanOrEqualTo(String value) {
            addCriterion("industry >=", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryLessThan(String value) {
            addCriterion("industry <", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryLessThanOrEqualTo(String value) {
            addCriterion("industry <=", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryLike(String value) {
            addCriterion("industry like", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryNotLike(String value) {
            addCriterion("industry not like", value, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryIn(List<String> values) {
            addCriterion("industry in", values, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryNotIn(List<String> values) {
            addCriterion("industry not in", values, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryBetween(String value1, String value2) {
            addCriterion("industry between", value1, value2, "industry");
            return (Criteria) this;
        }

        public Criteria andIndustryNotBetween(String value1, String value2) {
            addCriterion("industry not between", value1, value2, "industry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryIsNull() {
            addCriterion("second_industry is null");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryIsNotNull() {
            addCriterion("second_industry is not null");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryEqualTo(String value) {
            addCriterion("second_industry =", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryNotEqualTo(String value) {
            addCriterion("second_industry <>", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryGreaterThan(String value) {
            addCriterion("second_industry >", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryGreaterThanOrEqualTo(String value) {
            addCriterion("second_industry >=", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryLessThan(String value) {
            addCriterion("second_industry <", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryLessThanOrEqualTo(String value) {
            addCriterion("second_industry <=", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryLike(String value) {
            addCriterion("second_industry like", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryNotLike(String value) {
            addCriterion("second_industry not like", value, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryIn(List<String> values) {
            addCriterion("second_industry in", values, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryNotIn(List<String> values) {
            addCriterion("second_industry not in", values, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryBetween(String value1, String value2) {
            addCriterion("second_industry between", value1, value2, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andSecondIndustryNotBetween(String value1, String value2) {
            addCriterion("second_industry not between", value1, value2, "secondIndustry");
            return (Criteria) this;
        }

        public Criteria andCompanyIsNull() {
            addCriterion("company is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIsNotNull() {
            addCriterion("company is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyEqualTo(String value) {
            addCriterion("company =", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotEqualTo(String value) {
            addCriterion("company <>", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyGreaterThan(String value) {
            addCriterion("company >", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyGreaterThanOrEqualTo(String value) {
            addCriterion("company >=", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyLessThan(String value) {
            addCriterion("company <", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyLessThanOrEqualTo(String value) {
            addCriterion("company <=", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyLike(String value) {
            addCriterion("company like", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotLike(String value) {
            addCriterion("company not like", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyIn(List<String> values) {
            addCriterion("company in", values, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotIn(List<String> values) {
            addCriterion("company not in", values, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyBetween(String value1, String value2) {
            addCriterion("company between", value1, value2, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotBetween(String value1, String value2) {
            addCriterion("company not between", value1, value2, "company");
            return (Criteria) this;
        }

        public Criteria andProfessionIsNull() {
            addCriterion("profession is null");
            return (Criteria) this;
        }

        public Criteria andProfessionIsNotNull() {
            addCriterion("profession is not null");
            return (Criteria) this;
        }

        public Criteria andProfessionEqualTo(String value) {
            addCriterion("profession =", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionNotEqualTo(String value) {
            addCriterion("profession <>", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionGreaterThan(String value) {
            addCriterion("profession >", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionGreaterThanOrEqualTo(String value) {
            addCriterion("profession >=", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionLessThan(String value) {
            addCriterion("profession <", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionLessThanOrEqualTo(String value) {
            addCriterion("profession <=", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionLike(String value) {
            addCriterion("profession like", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionNotLike(String value) {
            addCriterion("profession not like", value, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionIn(List<String> values) {
            addCriterion("profession in", values, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionNotIn(List<String> values) {
            addCriterion("profession not in", values, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionBetween(String value1, String value2) {
            addCriterion("profession between", value1, value2, "profession");
            return (Criteria) this;
        }

        public Criteria andProfessionNotBetween(String value1, String value2) {
            addCriterion("profession not between", value1, value2, "profession");
            return (Criteria) this;
        }

        public Criteria andHeightIsNull() {
            addCriterion("height is null");
            return (Criteria) this;
        }

        public Criteria andHeightIsNotNull() {
            addCriterion("height is not null");
            return (Criteria) this;
        }

        public Criteria andHeightEqualTo(Double value) {
            addCriterion("height =", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightNotEqualTo(Double value) {
            addCriterion("height <>", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightGreaterThan(Double value) {
            addCriterion("height >", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightGreaterThanOrEqualTo(Double value) {
            addCriterion("height >=", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightLessThan(Double value) {
            addCriterion("height <", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightLessThanOrEqualTo(Double value) {
            addCriterion("height <=", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightIn(List<Double> values) {
            addCriterion("height in", values, "height");
            return (Criteria) this;
        }

        public Criteria andHeightNotIn(List<Double> values) {
            addCriterion("height not in", values, "height");
            return (Criteria) this;
        }

        public Criteria andHeightBetween(Double value1, Double value2) {
            addCriterion("height between", value1, value2, "height");
            return (Criteria) this;
        }

        public Criteria andHeightNotBetween(Double value1, Double value2) {
            addCriterion("height not between", value1, value2, "height");
            return (Criteria) this;
        }

        public Criteria andWeightIsNull() {
            addCriterion("weight is null");
            return (Criteria) this;
        }

        public Criteria andWeightIsNotNull() {
            addCriterion("weight is not null");
            return (Criteria) this;
        }

        public Criteria andWeightEqualTo(Double value) {
            addCriterion("weight =", value, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightNotEqualTo(Double value) {
            addCriterion("weight <>", value, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightGreaterThan(Double value) {
            addCriterion("weight >", value, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightGreaterThanOrEqualTo(Double value) {
            addCriterion("weight >=", value, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightLessThan(Double value) {
            addCriterion("weight <", value, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightLessThanOrEqualTo(Double value) {
            addCriterion("weight <=", value, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightIn(List<Double> values) {
            addCriterion("weight in", values, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightNotIn(List<Double> values) {
            addCriterion("weight not in", values, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightBetween(Double value1, Double value2) {
            addCriterion("weight between", value1, value2, "weight");
            return (Criteria) this;
        }

        public Criteria andWeightNotBetween(Double value1, Double value2) {
            addCriterion("weight not between", value1, value2, "weight");
            return (Criteria) this;
        }

        public Criteria andBmiIsNull() {
            addCriterion("bmi is null");
            return (Criteria) this;
        }

        public Criteria andBmiIsNotNull() {
            addCriterion("bmi is not null");
            return (Criteria) this;
        }

        public Criteria andBmiEqualTo(Double value) {
            addCriterion("bmi =", value, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiNotEqualTo(Double value) {
            addCriterion("bmi <>", value, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiGreaterThan(Double value) {
            addCriterion("bmi >", value, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiGreaterThanOrEqualTo(Double value) {
            addCriterion("bmi >=", value, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiLessThan(Double value) {
            addCriterion("bmi <", value, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiLessThanOrEqualTo(Double value) {
            addCriterion("bmi <=", value, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiIn(List<Double> values) {
            addCriterion("bmi in", values, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiNotIn(List<Double> values) {
            addCriterion("bmi not in", values, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiBetween(Double value1, Double value2) {
            addCriterion("bmi between", value1, value2, "bmi");
            return (Criteria) this;
        }

        public Criteria andBmiNotBetween(Double value1, Double value2) {
            addCriterion("bmi not between", value1, value2, "bmi");
            return (Criteria) this;
        }

        public Criteria andPhysiqueIsNull() {
            addCriterion("physique is null");
            return (Criteria) this;
        }

        public Criteria andPhysiqueIsNotNull() {
            addCriterion("physique is not null");
            return (Criteria) this;
        }

        public Criteria andPhysiqueEqualTo(String value) {
            addCriterion("physique =", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueNotEqualTo(String value) {
            addCriterion("physique <>", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueGreaterThan(String value) {
            addCriterion("physique >", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueGreaterThanOrEqualTo(String value) {
            addCriterion("physique >=", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueLessThan(String value) {
            addCriterion("physique <", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueLessThanOrEqualTo(String value) {
            addCriterion("physique <=", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueLike(String value) {
            addCriterion("physique like", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueNotLike(String value) {
            addCriterion("physique not like", value, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueIn(List<String> values) {
            addCriterion("physique in", values, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueNotIn(List<String> values) {
            addCriterion("physique not in", values, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueBetween(String value1, String value2) {
            addCriterion("physique between", value1, value2, "physique");
            return (Criteria) this;
        }

        public Criteria andPhysiqueNotBetween(String value1, String value2) {
            addCriterion("physique not between", value1, value2, "physique");
            return (Criteria) this;
        }

        public Criteria andLarkCodeIsNull() {
            addCriterion("lark_code is null");
            return (Criteria) this;
        }

        public Criteria andLarkCodeIsNotNull() {
            addCriterion("lark_code is not null");
            return (Criteria) this;
        }

        public Criteria andLarkCodeEqualTo(String value) {
            addCriterion("lark_code =", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotEqualTo(String value) {
            addCriterion("lark_code <>", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeGreaterThan(String value) {
            addCriterion("lark_code >", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeGreaterThanOrEqualTo(String value) {
            addCriterion("lark_code >=", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeLessThan(String value) {
            addCriterion("lark_code <", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeLessThanOrEqualTo(String value) {
            addCriterion("lark_code <=", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeLike(String value) {
            addCriterion("lark_code like", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotLike(String value) {
            addCriterion("lark_code not like", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeIn(List<String> values) {
            addCriterion("lark_code in", values, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotIn(List<String> values) {
            addCriterion("lark_code not in", values, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeBetween(String value1, String value2) {
            addCriterion("lark_code between", value1, value2, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotBetween(String value1, String value2) {
            addCriterion("lark_code not between", value1, value2, "larkCode");
            return (Criteria) this;
        }

        public Criteria andBaseStateIsNull() {
            addCriterion("base_state is null");
            return (Criteria) this;
        }

        public Criteria andBaseStateIsNotNull() {
            addCriterion("base_state is not null");
            return (Criteria) this;
        }

        public Criteria andBaseStateEqualTo(Byte value) {
            addCriterion("base_state =", value, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateNotEqualTo(Byte value) {
            addCriterion("base_state <>", value, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateGreaterThan(Byte value) {
            addCriterion("base_state >", value, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateGreaterThanOrEqualTo(Byte value) {
            addCriterion("base_state >=", value, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateLessThan(Byte value) {
            addCriterion("base_state <", value, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateLessThanOrEqualTo(Byte value) {
            addCriterion("base_state <=", value, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateIn(List<Byte> values) {
            addCriterion("base_state in", values, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateNotIn(List<Byte> values) {
            addCriterion("base_state not in", values, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateBetween(Byte value1, Byte value2) {
            addCriterion("base_state between", value1, value2, "baseState");
            return (Criteria) this;
        }

        public Criteria andBaseStateNotBetween(Byte value1, Byte value2) {
            addCriterion("base_state not between", value1, value2, "baseState");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyIsNull() {
            addCriterion("is_bids_verify is null");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyIsNotNull() {
            addCriterion("is_bids_verify is not null");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyEqualTo(Byte value) {
            addCriterion("is_bids_verify =", value, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyNotEqualTo(Byte value) {
            addCriterion("is_bids_verify <>", value, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyGreaterThan(Byte value) {
            addCriterion("is_bids_verify >", value, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_bids_verify >=", value, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyLessThan(Byte value) {
            addCriterion("is_bids_verify <", value, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyLessThanOrEqualTo(Byte value) {
            addCriterion("is_bids_verify <=", value, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyIn(List<Byte> values) {
            addCriterion("is_bids_verify in", values, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyNotIn(List<Byte> values) {
            addCriterion("is_bids_verify not in", values, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyBetween(Byte value1, Byte value2) {
            addCriterion("is_bids_verify between", value1, value2, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBidsVerifyNotBetween(Byte value1, Byte value2) {
            addCriterion("is_bids_verify not between", value1, value2, "isBidsVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyIsNull() {
            addCriterion("is_buyout_verify is null");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyIsNotNull() {
            addCriterion("is_buyout_verify is not null");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyEqualTo(Integer value) {
            addCriterion("is_buyout_verify =", value, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyNotEqualTo(Integer value) {
            addCriterion("is_buyout_verify <>", value, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyGreaterThan(Integer value) {
            addCriterion("is_buyout_verify >", value, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_buyout_verify >=", value, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyLessThan(Integer value) {
            addCriterion("is_buyout_verify <", value, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyLessThanOrEqualTo(Integer value) {
            addCriterion("is_buyout_verify <=", value, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyIn(List<Integer> values) {
            addCriterion("is_buyout_verify in", values, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyNotIn(List<Integer> values) {
            addCriterion("is_buyout_verify not in", values, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyBetween(Integer value1, Integer value2) {
            addCriterion("is_buyout_verify between", value1, value2, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andIsBuyoutVerifyNotBetween(Integer value1, Integer value2) {
            addCriterion("is_buyout_verify not between", value1, value2, "isBuyoutVerify");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeIsNull() {
            addCriterion("perfect_degree is null");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeIsNotNull() {
            addCriterion("perfect_degree is not null");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeEqualTo(Double value) {
            addCriterion("perfect_degree =", value, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeNotEqualTo(Double value) {
            addCriterion("perfect_degree <>", value, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeGreaterThan(Double value) {
            addCriterion("perfect_degree >", value, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeGreaterThanOrEqualTo(Double value) {
            addCriterion("perfect_degree >=", value, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeLessThan(Double value) {
            addCriterion("perfect_degree <", value, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeLessThanOrEqualTo(Double value) {
            addCriterion("perfect_degree <=", value, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeIn(List<Double> values) {
            addCriterion("perfect_degree in", values, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeNotIn(List<Double> values) {
            addCriterion("perfect_degree not in", values, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeBetween(Double value1, Double value2) {
            addCriterion("perfect_degree between", value1, value2, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectDegreeNotBetween(Double value1, Double value2) {
            addCriterion("perfect_degree not between", value1, value2, "perfectDegree");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusIsNull() {
            addCriterion("perfect_status is null");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusIsNotNull() {
            addCriterion("perfect_status is not null");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusEqualTo(String value) {
            addCriterion("perfect_status =", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusNotEqualTo(String value) {
            addCriterion("perfect_status <>", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusGreaterThan(String value) {
            addCriterion("perfect_status >", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusGreaterThanOrEqualTo(String value) {
            addCriterion("perfect_status >=", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusLessThan(String value) {
            addCriterion("perfect_status <", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusLessThanOrEqualTo(String value) {
            addCriterion("perfect_status <=", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusLike(String value) {
            addCriterion("perfect_status like", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusNotLike(String value) {
            addCriterion("perfect_status not like", value, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusIn(List<String> values) {
            addCriterion("perfect_status in", values, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusNotIn(List<String> values) {
            addCriterion("perfect_status not in", values, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusBetween(String value1, String value2) {
            addCriterion("perfect_status between", value1, value2, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andPerfectStatusNotBetween(String value1, String value2) {
            addCriterion("perfect_status not between", value1, value2, "perfectStatus");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdIsNull() {
            addCriterion("user_group_id is null");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdIsNotNull() {
            addCriterion("user_group_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdEqualTo(Integer value) {
            addCriterion("user_group_id =", value, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdNotEqualTo(Integer value) {
            addCriterion("user_group_id <>", value, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdGreaterThan(Integer value) {
            addCriterion("user_group_id >", value, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_group_id >=", value, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdLessThan(Integer value) {
            addCriterion("user_group_id <", value, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_group_id <=", value, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdIn(List<Integer> values) {
            addCriterion("user_group_id in", values, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdNotIn(List<Integer> values) {
            addCriterion("user_group_id not in", values, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdBetween(Integer value1, Integer value2) {
            addCriterion("user_group_id between", value1, value2, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andUserGroupIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_group_id not between", value1, value2, "userGroupId");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNull() {
            addCriterion("is_delete is null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNotNull() {
            addCriterion("is_delete is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteEqualTo(Byte value) {
            addCriterion("is_delete =", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotEqualTo(Byte value) {
            addCriterion("is_delete <>", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThan(Byte value) {
            addCriterion("is_delete >", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_delete >=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThan(Byte value) {
            addCriterion("is_delete <", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThanOrEqualTo(Byte value) {
            addCriterion("is_delete <=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIn(List<Byte> values) {
            addCriterion("is_delete in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotIn(List<Byte> values) {
            addCriterion("is_delete not in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteBetween(Byte value1, Byte value2) {
            addCriterion("is_delete between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotBetween(Byte value1, Byte value2) {
            addCriterion("is_delete not between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}